/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * EditarPago.java
 *
 * Created on 26-may-2010, 21:10:12
 */

package ui;

import acceso.Pago;
import gestion.GestionSpring;
import interfaz.InterfaceEjp;
import java.util.Date;
import java.util.logging.Level;
import javax.swing.JOptionPane;
import manejoExcepciones.Excepciones;
import org.apache.log4j.Logger;

/**
 *
 * @author Gustavo
 */
public class EditarPago extends javax.swing.JFrame {

    private static Logger logger = Logger.getLogger(EditarPago.class);
    Long Codigo;
    PaginaPrincipal miPaginaPrincipal;
    /** Creates new form EditarPago */
    
    public void setMiPaginaPrincipal(PaginaPrincipal miPaginaPrincipal) {
        this.miPaginaPrincipal = miPaginaPrincipal;
        //Muestra la info del servicio seleccionado para modificar
        MostrarPagoModificar();
    }
    

    public void setCodigo(Long Codigo) {
        this.Codigo = Codigo;
    }
    
    public EditarPago() {
        initComponents();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        NombreEditar = new javax.swing.JTextField();
        BotonOkModificar = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        NombreRadioButton = new javax.swing.JRadioButton();
        FrecuenciaRadioButton = new javax.swing.JRadioButton();
        FechaPagoRadioButton = new javax.swing.JRadioButton();
        ComboFrecuencia = new javax.swing.JComboBox();
        FechaCorteRadioButton = new javax.swing.JRadioButton();
        FechaCorteEditar = new com.toedter.calendar.JDateChooser();
        FechaPagoEditar = new com.toedter.calendar.JDateChooser();
        MontoRadioButton = new javax.swing.JRadioButton();
        MontoEditar = new javax.swing.JTextField();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("Inversiones E.J.P");

        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Editar Pago"));
        jPanel1.setName("jPanel1"); // NOI18N

        NombreEditar.setName("NombreEditar"); // NOI18N
        NombreEditar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                NombreEditarActionPerformed(evt);
            }
        });

        BotonOkModificar.setText("OK");
        BotonOkModificar.setName("BotonOkModificar"); // NOI18N
        BotonOkModificar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                BotonOkModificarActionPerformed(evt);
            }
        });

        jButton2.setText("Cancelar");
        jButton2.setName("jButton2"); // NOI18N
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        NombreRadioButton.setText("Nombre:");
        NombreRadioButton.setName("NombreRadioButton"); // NOI18N
        NombreRadioButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                NombreRadioButtonActionPerformed(evt);
            }
        });

        FrecuenciaRadioButton.setText("Frecuencia:");
        FrecuenciaRadioButton.setName("FrecuenciaRadioButton"); // NOI18N
        FrecuenciaRadioButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                FrecuenciaRadioButtonActionPerformed(evt);
            }
        });

        FechaPagoRadioButton.setText("Fecha Pago:");
        FechaPagoRadioButton.setName("FechaPagoRadioButton"); // NOI18N
        FechaPagoRadioButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                FechaPagoRadioButtonActionPerformed(evt);
            }
        });

        ComboFrecuencia.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Mensual", "Trimestral", "Semestral", "Anual" }));
        ComboFrecuencia.setName("ComboFrecuencia"); // NOI18N
        ComboFrecuencia.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ComboFrecuenciaActionPerformed(evt);
            }
        });

        FechaCorteRadioButton.setText("Fecha Corte");
        FechaCorteRadioButton.setName("FechaCorteRadioButton"); // NOI18N
        FechaCorteRadioButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                FechaCorteRadioButtonActionPerformed(evt);
            }
        });

        FechaCorteEditar.setName("FechaCorteEditar"); // NOI18N

        FechaPagoEditar.setName("FechaPagoEditar"); // NOI18N

        MontoRadioButton.setText("Monto");
        MontoRadioButton.setName("MontoRadioButton"); // NOI18N
        MontoRadioButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                MontoRadioButtonActionPerformed(evt);
            }
        });

        MontoEditar.setName("MontoEditar"); // NOI18N
        MontoEditar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                MontoEditarActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(FrecuenciaRadioButton)
                                    .addComponent(NombreRadioButton))
                                .addGap(8, 8, 8)
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(NombreEditar, javax.swing.GroupLayout.DEFAULT_SIZE, 146, Short.MAX_VALUE)
                                    .addComponent(ComboFrecuencia, 0, 146, Short.MAX_VALUE)))
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addComponent(FechaPagoRadioButton)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(FechaPagoEditar, javax.swing.GroupLayout.DEFAULT_SIZE, 144, Short.MAX_VALUE))
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addComponent(FechaCorteRadioButton)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(MontoEditar, javax.swing.GroupLayout.DEFAULT_SIZE, 144, Short.MAX_VALUE)
                                    .addComponent(FechaCorteEditar, javax.swing.GroupLayout.DEFAULT_SIZE, 144, Short.MAX_VALUE)))))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(68, 68, 68)
                        .addComponent(BotonOkModificar)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jButton2))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(MontoRadioButton)))
                .addContainerGap())
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(NombreEditar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(NombreRadioButton))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(FrecuenciaRadioButton)
                    .addComponent(ComboFrecuencia, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(FechaPagoRadioButton)
                    .addComponent(FechaPagoEditar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(FechaCorteRadioButton)
                    .addComponent(FechaCorteEditar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(MontoRadioButton)
                    .addComponent(MontoEditar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(BotonOkModificar)
                    .addComponent(jButton2))
                .addGap(109, 109, 109))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 207, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setBounds((screenSize.width-299)/2, (screenSize.height-267)/2, 299, 267);
    }// </editor-fold>//GEN-END:initComponents

    private void NombreEditarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_NombreEditarActionPerformed
        // TODO add your handling code here:
}//GEN-LAST:event_NombreEditarActionPerformed

    private void BotonOkModificarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_BotonOkModificarActionPerformed
        
        
       
       //Se declaran los atributos del Pago
       String NombreM = NombreEditar.getText();
       float MontoM= Float.parseFloat(MontoEditar.getText());
       Date FechaCorteM = FechaCorteEditar.getDate();
       Date FechaPagoM = FechaPagoEditar.getDate();
       int FrecuenciaM = 0;

       //Si el JRadioButton del Nombre es seleccionado se guarda el nuevo nombre.
       if (NombreRadioButton.isSelected() == true)
        {
            NombreM = NombreEditar.getText();

        }

     //Si el JRadioButton de Frecuencia es seleccionado se guarda la nueva info.
       if (FrecuenciaRadioButton.isSelected() == true)
        {
           int Seleccion = ComboFrecuencia.getSelectedIndex();
                              if (Seleccion == 0)
       {
           FrecuenciaM = 1;
       }

        if (Seleccion == 1)
       {
           FrecuenciaM = 3;
       }
         if (Seleccion == 2)
       {
          FrecuenciaM = 6;
       }
       else if (Seleccion == 3)
       {
          FrecuenciaM = 12;
       }


        }
//Si el JRadioButton de FechaPago es seleccionado se guarda la nueva fecha.
       if (FechaPagoRadioButton.isSelected() == true)
        {
           FechaPagoM = FechaPagoEditar.getDate();

        }
//Si el JRadioButton de FechaCorte es seleccionado se guarda la nueva fecha.
       if (FechaCorteRadioButton.isSelected() == true)
        {
            FechaCorteM = FechaCorteEditar.getDate();

        }
//Si el JRadioButton de Monto es seleccionado se guarda el nuevo monto.
       if (MontoRadioButton.isSelected() == true)
        {
               MontoM = Float.parseFloat(MontoEditar.getText());
        }

      try{
         //Verificamos que el monto sea numerico.
         float monto = Float.parseFloat(MontoEditar.getText());
            try {
                //Verificamos que monto no sea negativos.
                manejoExcepciones.ExcepcionesPago.CampoNoNegativo(monto);
            } catch (Excepciones ex) {
                java.util.logging.Logger.getLogger(EditarPago.class.getName()).
                log(Level.SEVERE, null, ex);
            }

       //Verificamos si las fechas son validas, no antes de la actual
       manejoExcepciones.ExcepcionesPago.FechaValida(FechaCorteEditar.getDate());
       manejoExcepciones.ExcepcionesPago.FechaValida(FechaPagoEditar.getDate());

     //Se construye el Pago a actualizar.
     Pago miPagoM = new Pago ();
     miPagoM.setIdPago(Codigo);
     miPagoM.setNombre(NombreM);
     miPagoM.setMonto(MontoM);
     miPagoM.setFechaCorte(FechaCorteM);
     miPagoM.setFechaPago(FechaPagoM);
     miPagoM.setFrecuencia(FrecuenciaM);
      

     //Instanciaciamos la interface.
     InterfaceEjp miInterfaceEjp = GestionSpring.getSingleton().MetodoGestion();
     //Se hace el update del pago a traves de la interface.
     miInterfaceEjp.registrarPago(miPagoM);

     logger.info("Modificacion del pago con codigo: " + Codigo);
     //Mostramos mensaje de exito.
      JOptionPane.showMessageDialog(this,"Modificacion Exitosa");

     //Refrescamos el JTable TablaPago
       miPaginaPrincipal.Refrescar();
       this.setVisible(false);

     }catch(Excepciones ExI2 ){

         logger.info("A ocurrido un error detectado por una excepcion");
         JOptionPane.showMessageDialog(this,ExI2.getMessage());

       }
      catch(NumberFormatException NFE2){

         logger.info("A ocurrido un error con el campo monto");
         JOptionPane.showMessageDialog(this,"El campo monto debe " +
                                      "ser numerico");

       }
}//GEN-LAST:event_BotonOkModificarActionPerformed

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
        logger.info("Salio de la pagina Editar Pago");
        this.setVisible(false);
    }//GEN-LAST:event_jButton2ActionPerformed

    private void NombreRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_NombreRadioButtonActionPerformed
        if(NombreRadioButton.isSelected()==true)
            NombreEditar.setEnabled(true);
        else
            NombreEditar.setEnabled(false);
        // TODO add your handling code here:
}//GEN-LAST:event_NombreRadioButtonActionPerformed

    private void FrecuenciaRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_FrecuenciaRadioButtonActionPerformed
        if(FrecuenciaRadioButton.isSelected()==true)
            ComboFrecuencia.setEnabled(true);
        else
            ComboFrecuencia.setEnabled(false);
        // TODO add your handling code here:
}//GEN-LAST:event_FrecuenciaRadioButtonActionPerformed

    private void FechaPagoRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_FechaPagoRadioButtonActionPerformed
        if(FechaPagoRadioButton.isSelected()==true)
            FechaPagoEditar.setEnabled(true);
        else
            FechaPagoEditar.setEnabled(false);
        // TODO add your handling code here:
}//GEN-LAST:event_FechaPagoRadioButtonActionPerformed

    private void ComboFrecuenciaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ComboFrecuenciaActionPerformed
        // TODO add your handling code here:
}//GEN-LAST:event_ComboFrecuenciaActionPerformed

    private void FechaCorteRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_FechaCorteRadioButtonActionPerformed
        if(FechaCorteRadioButton.isSelected()==true)
            FechaCorteEditar.setEnabled(true);
        else
            FechaCorteEditar.setEnabled(false);
        // TODO add your handling code here:
}//GEN-LAST:event_FechaCorteRadioButtonActionPerformed

    private void MontoEditarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_MontoEditarActionPerformed
       // TODO add your handling code here:
    }//GEN-LAST:event_MontoEditarActionPerformed

    private void MontoRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_MontoRadioButtonActionPerformed
         if(MontoRadioButton.isSelected()==true)
            MontoEditar.setEnabled(true);
        else
            MontoEditar.setEnabled(false);
    }//GEN-LAST:event_MontoRadioButtonActionPerformed



    /**
     * Metodo en el que se muestra la informacion del pago a editar.
     *
     */
     public void MostrarPagoModificar()
    {

        InterfaceEjp miInterfaceEjp = GestionSpring.getSingleton().MetodoGestion();
       //Se Busca el servicio selecionado para la modificación
        Pago miPagoModificar = miInterfaceEjp.BuscarPago(Codigo);

        //Se bloquean los JTextField
        boolean falso=false;
        NombreEditar.setEnabled(falso);
        MontoEditar.setEnabled(falso);
        FechaCorteEditar.setEnabled(falso);
        FechaPagoEditar.setEnabled(falso);
        ComboFrecuencia.setEnabled(falso);

        //Se toman los datos del servicio seleccionado para mostralo en pantalla
        NombreEditar.setText(miPagoModificar.getNombre());
        MontoEditar.setText(String.valueOf(miPagoModificar.getMonto()));
        FechaCorteEditar.setDate(miPagoModificar.getFechaCorte());
        FechaPagoEditar.setDate(miPagoModificar.getFechaPago());



        if (miPagoModificar.getFrecuencia() == 1){

            ComboFrecuencia.setSelectedIndex(0);
            }
        if (miPagoModificar.getFrecuencia() == 3){

            ComboFrecuencia.setSelectedIndex(1);
            }
        if (miPagoModificar.getFrecuencia() == 6){

            ComboFrecuencia.setSelectedIndex(2);
            }
        if (miPagoModificar.getFrecuencia() == 12){

            ComboFrecuencia.setSelectedIndex(3);
            }


     }


    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new EditarPago().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton BotonOkModificar;
    private javax.swing.JComboBox ComboFrecuencia;
    private com.toedter.calendar.JDateChooser FechaCorteEditar;
    private javax.swing.JRadioButton FechaCorteRadioButton;
    private com.toedter.calendar.JDateChooser FechaPagoEditar;
    private javax.swing.JRadioButton FechaPagoRadioButton;
    private javax.swing.JRadioButton FrecuenciaRadioButton;
    private javax.swing.JTextField MontoEditar;
    private javax.swing.JRadioButton MontoRadioButton;
    private javax.swing.JTextField NombreEditar;
    private javax.swing.JRadioButton NombreRadioButton;
    private javax.swing.JButton jButton2;
    private javax.swing.JPanel jPanel1;
    // End of variables declaration//GEN-END:variables

}
